#pragma once
#include<vector>
#include<iostream>
#include<ctime>


typedef void (*task_t)();

////////////////debug/////////////////////
void PrintLog()
{
    std::cout << "我是一个打印日志的任务" << std::endl;
}

void Download()
{
    std::cout << "我是一个下载的任务" << std::endl;
}

void Upload()
{
    std::cout << "我是一个上传的任务" << std::endl;
}
//////////////////////////////////////



class TaskManager 
{
    public:
        TaskManager()
		{
			srand(time(nullptr));
		}
       void Register(task_t task)
        {
			_taks.push_back(task);
		}
        
		int Code()
		{
			return rand() % _taks.size();
		}
        
		void Execute(int code)
        {
             if(code >= 0 && code < _taks.size())
			 {
				 _taks[code]();
			 }
		}

		~TaskManager()
		{}

	private:
		std::vector<task_t> _taks;

};
